The present invention pertains to data decoding. More particularly, the present invention pertains to a system and a technique for decoding Manchester encoded data.
Digital data is frequently transmitted considerable distances over transmission links such as radio links or wire connections. At the receiving end, the data must be recovered from a signal which frequently includes noise, in the form of extraneous pulses, and jitter, in the form of pulses delayed or ahead of their proper time position. Such noise and jitter can introduce errors into the received data, since the noise and jitter might be interpreted erroneously as a data pulse. A significant problem in conventional data transmission schemes is the absence of a clock at the receiving station. Without a clock, the beginning or the end of an incoming data bit cannot be accurately identified, and the width of a bit cell or even the order of incoming data cannot be accurately determined. Furthermore, binary data contain a D.C. component which depends upon the bit pattern. If a long string of binary ones is transmitted, the receiving station gets a D.C. level which could last for several seconds. Many types of receiving equipment cannot handle this D.C. or zero frequency signal. Expensive additional circuitry is necessary to accommodate the D.C. level.
Manchester data transmission overcomes the problems of lack of a clock signal at the receiving station and of the D.C. level. In Manchester data transmission, the data are combined at the transmitting station with a bit-rate clock to provide two bits of output data for a single input bit. This is frequently accomplished by applying the original data and the clock signal to an exclusive-OR gate, the output of which is the Manchester encoded data. Logic level zero data are represented by a binary zero during the first half of a bit interval and by a binary one during the second half. Conversely, logic level one data, being the complement of logic zero data, are just the opposite, being represented by a binary one during the first half of a bit interval and by a binary zero during the second half. This yields a 50% duty cycle. Document 106-73 of the Inter-Range Instrumentation Group (IRIG) Telemetry Standards sets forth further information with regard to Manchester data.
While Manchester encoded data avoids the D.C. or zero frequency signal problem, still noise and jitter can occur. At the receiving station, the noise must be eliminated and the jitter corrected in order to assure that the decoded data corresponds with the original data. There are two widely known approaches to decoding of Manchester data. The first involves recreating the clock exactly from the Manchester data and combining it in an exclusive-OR circuit with the Manchester data to obtain the original data. This approach is discussed in the article "Drop Your Costs, But Not Your Bits With a Manchester-data Decoder," by Jerry J. Norton, Electronic Design, Vol. 27, No. 15, page 110, July 19, 1979. While in theory this is a simple method, in practice it is difficult and it requires a large number of components to implement satisfactory circuitry. The clock that must be recreated from the data must be exactly in phase with the incoming data at all times. Jitter on the incoming signal makes this impossible. The resulting recreated data will have spikes as a result of the phase difference. In addition, if the data system has a different response time for a binary zero to binary one transition than for a binary one to binary zero transition, an asymmetrical clock component will be imbedded in the incoming Manchester data. The recreated clock is not exact, thus not asymmetrical, and so spikes occur on the recreated data. Any noise coming with the Manchester data will be passed through to the recreated data.
Since a logic level zero in the original data always is represented in the Manchester data by a binary zero during the first half of a bit interval and by a binary one during the second half, and since a logic level one in the original data similarly is represented by a binary one during the first half of a bit interval and by a binary zero during the second half, there is always a transition, either from binary zero to binary one or from binary one to binary zero, at each mid-bit position in the Manchester data. The second widely used method of decoding the Manchester data is to determine the direction of these mid-bit transitions, that is, whether they are binary zero to binary one transitions or binary one to binary zero transitions. This approach is discussed in the article "Code Your Fiber-Optic Data for Speed, Without Losing Circuit Simplicity," by D. J. Morris, Electronic design, Vol 26, No. 22, page 84, Oct. 25, 1978.
The direction of the mid-bit transition indicates whether the original data is a logic level zero or a logic level one. A binary zero to binary one mid-bit transition indicates a logic level zero in the original data, and a binary one to binary zero transition indicates a logic level one in the original data. While this technique for decoding Manchester data may appear simple to implement, it is more susceptible to noise and jitter than is desirable. To overcome noise problems a window is created during which the mid-bit transition must occur. Nevertheless, any noise occurring during that window will create both a binary zero to binary one transition and a binary one to binary zero transition. Consequently, any noise occurring during this window has at least a 50% likelihood of causing an error in the decoded data. If the window is made more narrow to reduce the likelihood of receiving noise, jitter in the incoming signal may cause the mid-bit transition to fall outside the window, again causing an error. Filtering in an attempt to remove noise may increase jitter, and thus the feasibility of using filtering is limited.